package com.cloud.lan.entity.constant;

import java.util.function.Function;

/**
 * 数据分析-获取用户访问小程序日留存
 * https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/data-analysis/visit-retain/analysis.getDailyRetain.html
 * @author ErKang
 * @date Created in 2022/1/13 01:48
 * @title WxDataConstant.java
 * Department: Product development
 */
public class WxDataConstant {

    public static final String PAY_DESC = "系统-用户支付成功";

    public static final String APPID = "wxe5b9fcede6680c3c";

    public static final String MPAPPID = "wx94c1d4804581022f";

    public static final String wxDataUrl = "https://api.weixin.qq.com/datacube/{}?access_token={}";

    public static final String[] wxMethad = {"getDailySummary", "getDailyRetain", "getDailyVisitTrend"};

    /**
     * 获取微信数据分析方法转换
     * @author ErKang
     * @param request
     * @return
     * 2022/1/13 01:48
     */
    public static Function<String, String> getMethod = method -> {
        switch (method) {
            case "getDailyRetain":
                // 获取用户访问小程序日留存
                return "getweanalysisappiddailyretaininfo";
            case "getMonthlyRetain":
                // 获取用户访问小程序月留存
                return "getweanalysisappidmonthlyretaininfo";
            case "getWeeklyRetain":
                // 获取用户访问小程序周留存
                return "getweanalysisappidweeklyretaininfo";
            case "getDailySummary":
                // 获取用户访问小程序数据概况
                return "getweanalysisappiddailysummarytrend";
            case "getDailyVisitTrend":
                // 获取用户访问小程序数据日趋势
                return "getweanalysisappiddailyvisittrend";
            case "getMonthlyVisitTrend":
                // 获取用户访问小程序数据月趋势(能查询到的最新数据为上一个自然月的数据)
                return "getweanalysisappidmonthlyvisittrend";
            case "getWeeklyVisitTrend":
                // 获取用户访问小程序数据周趋势
                return "getweanalysisappidweeklyvisittrend";
            case "getUserPortrait":
                // 获取小程序新增或活跃用户的画像分布数据。时间范围支持昨天、最近7天、最近30天。其中，
                // 新增用户数为时间范围内首次访问小程序的去重用户数，活跃用户数为时间范围内访问过小程序的去重用户数。
                return "getweanalysisappiduserportrait";
            case "getVisitDistribution":
                // 获取用户小程序访问分布数据
                return "getweanalysisappidvisitdistribution";
            case "getVisitPage":
                // 访问页面。目前只提供按 page_visit_pv 排序的 top200。
                return "getweanalysisappidvisitpage";
            default:
                return "";
        }
    };
}
